স্প্রিং ওআরএম (Spring ORM) হলো স্প্রিং ফ্রেমওয়ার্কের একটি মডিউল, যা Java-তে ডাটাবেজ অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। এটি ORM (Object Relational Mapping) টেকনোলজি, যেমন Hibernate, JPA (Java Persistence API) ইত্যাদির সঙ্গে ইন্টিগ্রেশন প্রদান করে। Spring ORM ব্যবহার করে ডাটাবেজ অ্যাকসেস করা অনেক সহজ এবং কার্যকরী হয়, কারণ এটি Boilerplate কোড কমিয়ে আনে।
এই সেকশনে, একটি সরল Spring ORM প্রজেক্ট তৈরি করা হবে যেখানে Hibernate ব্যবহার করা হবে।
প্রথমে একটি Maven প্রজেক্ট তৈরি করুন এবং pom.xml ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যুক্ত করুন।
<dependencies>
<!-- Spring ORM -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.3.29</version>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.6.15.Final</version>
</dependency>
<!-- MySQL Driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.34</version>
</dependency>
<!-- Spring Context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.29</version>
</dependency>
</dependencies>
Hibernate এর জন্য hibernate.cfg.xml ফাইল তৈরি করুন এবং ডাটাবেসের তথ্য উল্লেখ করুন।
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/your_database</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">your_password</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<!-- Hibernate properties -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
Hibernate এর জন্য একটি Entity ক্লাস তৈরি করুন। উদাহরণস্বরূপ, Employee ক্লাস নিচে দেওয়া হলো।
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
@Entity
public class Employee {
@Id
private int id;
private String name;
private String department;
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
}
Spring-এর জন্য applicationContext.xml ফাইল তৈরি করুন এবং Hibernate ও Spring ORM-এর জন্য Bean ডিক্লার করুন।
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
<property name="annotatedClasses">
<list>
<value>com.example.Employee</value>
</list>
</property>
</bean>
<!-- Transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
</beans>
EmployeeDAO ক্লাসটি Hibernate Session ব্যবহার করে ডাটাবেস অপারেশন সম্পন্ন করবে।
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import javax.transaction.Transactional;
@Repository
public class EmployeeDAO {
@Autowired
private SessionFactory sessionFactory;
@Transactional
public void saveEmployee(Employee employee) {
Session session = sessionFactory.getCurrentSession();
session.save(employee);
}
}
অবশেষে, Spring Context লোড করে প্রজেক্ট রান করুন।
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
EmployeeDAO employeeDAO = context.getBean(EmployeeDAO.class);
Employee employee = new Employee();
employee.setId(1);
employee.setName("John Doe");
employee.setDepartment("IT");
employeeDAO.saveEmployee(employee);
System.out.println("Employee saved successfully!");
}
}
এই প্রজেক্টটি রান করলে MySQL ডাটাবেসে Employee টেবিল তৈরি হবে এবং ডাটাবেসে নতুন একটি রেকর্ড যুক্ত হবে।
Read more